package com.cty;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

/*
* 用Dom4j框架获得hello.xml文件中的数据
* */
public class xml01 {
    public static void main(String[] args) throws DocumentException {
        //SAXReader是dom4j提供的解析器，可以认为是代表整个Dom4j框架
        SAXReader saxReader = new SAXReader();
        //创建document对象
        Document document = saxReader.read("src/hello.xml");
        //创建根元素对象
        Element rootElement = document.getRootElement();
        //获得根元素名字
        System.out.println(rootElement.getName());
        //得到当前元素下所有的子元素
        List<Element> elements = rootElement.elements();
        for (Element e: elements) {
            System.out.println(e.getName());
        }
        //返回当前元素下指定名字的子元素的集合
        List<Element> elements1 = rootElement.elements("user");
        for (Element element : elements1) {
            System.out.println(element.getName());
        }
        //得到当前元素下指定名字的子元素，如果有很多名字相同的子元素返回第一个
        Element user = rootElement.element("user");
        //获得当前元素对象的属性对象（名字为id的属性对象）
        Attribute id = user.attribute("id");
        System.out.println(id.getData());
        //通过属性名直接获取属性值
        System.out.println(user.attributeValue("id"));
        //直接得到指定名称的子元素的文本内容
        System.out.println(user.elementText("name"));
        //得到文本
        Element sex = user.element("sex");
        System.out.println(sex.getText());
    }
}
